package jdk.jdk8.newinterface;

/**
 * 接口新特性
 *
 * @author guodd
 * @version 1.0 use jdk 1.8
 */
public class SubCompareTest {
    public static void main(String[] args) {
        SubCompare sub = new SubCompare();
        // 知识点1：静态方法只能通过接口直接调用
        // sub.method01();
        CompareA.method01();
        // 知识点2：实现类可以调用默认方法，也可以重新
        // 知识点3：接口冲突，如果类实现两个接口，且两个接口中包含相同方法method02方法，则必须要重写，
        // 如果不重写需要有个父类同样的方法method02
        sub.method02();
        // 知识点4：类优先原则，继承类和实现接口中的方法一样，执行类的方法。
        sub.method03();
    }
}

class SubCompare extends SuperClass implements CompareA, CompareB {
    @Override
    public void method02() {
        System.out.println("method方法必须重写");
    }

    public void myMethod() {
        // 调用本身重写的方法
        method03();
        // 调用父类的方法
        super.method03();
        // 调用接口中的默认方法
        CompareA.super.method02();
    }
}
